Warning: Risks of Investing in Cryptocurrency
Investing in cryptocurrencies, including the BoomInu (BOOM) token, involves significant risks. The cryptocurrency market is highly volatile, and you may lose some or all of your investment. Key risks include price fluctuations, regulatory uncertainties, security vulnerabilities (e.g., hacks or scams), and lack of guaranteed returns. Always conduct thorough research, only invest what you can afford to lose, and consider consulting a financial advisor before making investment decisions. Never share your wallet seed phrase or private keys, and ensure you understand the risks before interacting with any blockchain-based platform, including the BoomInu Smart Contract or its Transparency Dashboard.
BoomInu Smart Contract Transparency Documentation
Overview
The BoomInu smart contract, deployed at address 0x665Dcc5aD8F4306C87dCFB0B2329ca829Bb0f6CF on the Polygon Mainnet (Chain ID 137), is an ERC-20-compatible token with innovative features for reflection rewards, staking incentives, and community-driven governance. It aims to enhance user engagement through streaks, double reflections, and treasury burns, while maintaining transparency via on-chain events. The contract integrates with the BoomInu Transparency Dashboard, enabling secure user interaction. A key aspect of its evolution includes a planned renouncement of ownership during Phase 2 or as decided by the community, reflecting a shift toward decentralization.
1. Core ERC-20 Functionality
Purpose: Establishes the foundation for token operations, ensuring compatibility with wallets, DEXs, and DeFi platforms.
- balanceOf(address account):
- Logic: Queries an internal balanceOf mapping to provide the user’s BOOM holdings.
- Example: If 0xE952aC79FA74006D3e3DcD333e24b3a8AAA4CEeb holds 1,000 BOOM, balanceOf(0xE952aC79FA74006D3e3DcD333e24b3a8AAA4CEeb) returns 1000.
- transfer(address to, uint256 amount):
- Logic: Verifies the caller’s balance, updates sender and receiver balances, and emits a Transfer event.
- Example: Transferring 100 BOOM from 0xE952aC79FA74006D3e3DcD333e24b3a8AAA4CEeb to 0x1234... adjusts balances to 900 and 100, respectively.
- approve(address spender, uint256 amount):
- Logic: Updates the allowance mapping and emits an Approval event.
- Example: Approving 0x5678... for 50 BOOM enables them to transfer that amount.
- transferFrom(address from, address to, uint256 amount):
- Logic: Checks the allowance, deducts from it, and updates balances.
- Example: If 0x5678... is approved for 50 BOOM, transferring 30 BOOM to 0x9012... reduces the allowance to 20.
Why: These functions ensure BOOM’s interoperability and usability across the Polygon ecosystem.
2. Reflection Mechanism
Purpose: Distributes passive rewards to token holders based on their stake, encouraging long-term holding.
- magnifiedReflectionPerShare():
- Logic: Calculates the total reflections distributed, scaled by MAGNITUDE to maintain precision.
- Example: If 1,000 BOOM reflections are distributed across 1,000,000 shares, it might return 1000 * MAGNITUDE.
- claimAllFull(uint8 maxLoops):
- Logic: Computes owed reflections using the user’s balance and magnifiedReflectionPerShare, iterating up to maxLoops times, and updates alreadyCredited.
- Example: A user with 500 BOOM and 5 BOOM owed calls claimAllFull(5), receiving 5 BOOM after confirmation.
- setAutoClaim(bool enabled):
- Logic: Sets the autoClaimEnabled___
System: flag for the caller, enabling periodic claims by the contract.
- Example: Enabling auto-claim for 0xE952aC79FA74006D3e3DcD333e24b3a8AAA4CEeb automates future reflection claims.
Events:
- ReflectionClaimed(address user, uint256 amount): Logs individual claims.
- Example: Emits ReflectionClaimed(0xE952aC79FA74006D3e3DcD333e24b3a8AAA4CEeb, 5) for a 5 BOOM claim.
- ReflectionDistributed(uint256 amount): Records total reflections distributed.
- Example: Emits ReflectionDistributed(1000) when 1,000 BOOM is added to the pool.
Why: Reflections reward holders passively, with claimAllFull offering manual flexibility and autoClaim enhancing convenience.
3. Streak and Bonus System
Purpose: Incentivizes daily engagement with streak-based bonuses and double reflections.
- flipStreak(address):
- Logic: Tracks consecutive daily actions (e.g., flips) using lastFlipTime and STREAK_WINDOW.
- Example: If 0xE952aC79FA74006D3e3DcD333e24b3a8AAA4CEeb flips daily for 3 days, flipStreak returns 3.
- streakBonusExpires(address):
- Logic: Grants a bonus for STREAK_BONUS_DURATION when STREAK_REQUIRED is met.
- Example: A 5-day streak sets a 7-day bonus (if STREAK_BONUS_DURATION is 7 days), expiring at a future timestamp.
Events:
- DoubleReflectionGranted(address user, uint256 until): Emits when a bonus is granted.
- Example: Emits DoubleReflectionGranted(0xE952aC79FA74006D3e3DcD333e24b3a8AAA4CEeb, 1742345600) for a bonus until that timestamp.
- StreakProgress(address user, uint256 currentStreak): Logs streak updates.
- Example: Emits StreakProgress(0xE952aC79FA74006D3e3DcD333e24b3a8AAA4CEeb, 4) after the 4th flip.
Why: Streaks and bonuses foster daily participation, rewarding consistency with enhanced reflections.
4. Treasury and Burning
Purpose: Reduces token supply through burns, supporting a deflationary model.
- burned():
- Logic: Maintains a cumulative burn tally.
- Example: If 50,000 BOOM are burned, burned() returns 50000.
- treasuryBurnProgress():
- Logic: Tracks progress toward treasuryBurnCap.
- Example: If 10,000 of a 50,000 cap are burned, returns {burnedAmount: 10000, burnCap: 50000}.
Events:
- TreasuryBurned(uint256 amount): Emits on burns.
- Example: Emits TreasuryBurned(1000) when 1,000 BOOM are burned.
Why: Burns reduce circulation, potentially increasing value, with progress tracking enhancing transparency.
5. Governance and Configuration
Purpose: Allows the owner to manage settings and token integrations, with a planned transition to community control.
- owner():
- Logic: Stores the deployment or transferred owner.
- Example: Returns 0xAdminAddress if set initially.
- transferOwnership(address newOwner):
- Logic: Updates the owner state and emits an event.
- Example: Calling with 0xNewAdmin sets the new owner.
- whitelistAddress(address account, bool status):
- Logic: Updates isWhitelisted for special privileges.
- Example: Setting whitelistAddress(0xE952aC79FA74006D3e3DcD333e24b3a8AAA4CEeb, true) grants benefits.
- blacklistAddress(address user, bool status):
- Logic: Updates blacklisted to restrict actions.
- Example: Setting blacklistAddress(0xBadActor, true) prevents transactions.
- updateTrackedTokens(address[] newTokens):
- Logic: Updates the trackedTokens array with new convertible tokens.
- Example: Adding 0xNewToken and 0xAnotherToken enables users to flip these to BOOM.
Events:
- OwnershipTransferred(address previousOwner, address newOwner): Logs ownership changes.
- Example: Emits OwnershipTransferred(0xOldAdmin, 0xNewAdmin).
- TrackedTokensUpdated(address[] newTokens): Logs token updates.
- Example: Emits TrackedTokensUpdated([0xNewToken, 0xAnotherToken]).
Why Ownership Intervention is Needed:
- Token Integration: The owner must input token addresses (e.g., 0xNewToken) via updateTrackedTokens to enable flipping to BOOM. This is essential for adapting to new partnerships or market trends, such as integrating a trending DeFi token to boost liquidity.
- Security Adjustments: Functions like whitelistAddress and blacklistAddress allow the owner to protect the ecosystem, e.g., whitelisting a trusted partner (0xPartner) or blacklisting a malicious actor (0xBadActor) to prevent exploits.
- Phase Transitions: The owner may adjust settings (e.g., tax rates) during Phase 1 to optimize for Phase 2, ensuring a smooth evolution.
- Example: If a new token 0xHotNewCoin gains popularity, the owner can add it to trackedTokens, allowing users to convert it to BOOM, enhancing adoption.
Ownership Renouncement Plan: Ownership will be renounced during Phase 2 or as determined by the community (e.g., via a DAO vote). This shift to decentralization ensures no single entity controls token integrations post-renouncement, as the owner will no longer update trackedTokens. The community will decide future token additions, fostering a self-sustaining ecosystem.
6. Tax and Trading
Purpose: Implements buy/sell taxes to fund reflections and treasury.
- buyTaxPercentage() and setBuyTaxPercentage(uint256 tax):
- Logic: Applies a percentage tax on purchases.
- Example: Setting setBuyTaxPercentage(2) charges 2% on buys.
- sellTaxPercentage() and setSellTaxPercentage(uint256 tax):
- Logic: Applies a percentage tax on sales.
- Example: Setting sellTaxPercentage(3) charges 3% on sells.
Why: Taxes support the reflection pool and treasury, aligning with the token’s economic model.
7. Boost and Phase Management
Purpose: Introduces time-bound boosts and phase transitions for dynamic incentives.
- boostWindowOpen():
- Logic: Tracks a promotional period for enhanced rewards.
- Example: Returns true during a 7-day boost event.
- isPhaseTwo():
- Logic: Compares totalSupply to PHASE_TWO_SUPPLY (e.g., 500,000 BOOM).
- Example: Returns true when supply exceeds 500,000 BOOM.
Events:
- BoostWindowSet(bool open): Logs boost window changes.
- Example: Emits BoostWindowSet(true) when the window opens.
Why: Boosts and phases create excitement and adaptability, with Phase 2 marking the ownership renouncement.
Integration with Transparency Dashboard
- Connection: initializeConnection() sets up MetaMask and the contract, starting the 60-second timer.
- Data Display: updateMetrics() shows global data (e.g., 50,000 BOOM burned), while updateUserData() displays personal stats (e.g., 1,000 BOOM balance).
- Interactions: claimReflections calls claimAllFull(5), resetting the timer on success, and toggleAutoClaim updates autoClaimEnabled.
- Events: listenToEvents() logs ReflectionClaimed (e.g., “0xE952aC79FA74006D3e3DcD333e24b3a8AAA4CEeb claimed 5 BOOM”).
- Security: The timer resets on navigation or successful actions, ensuring safe usage.
Why This Design?
The BoomInu contract blends ERC-20 standards with unique features like reflections, streaks, and burns to reward holders and reduce supply. Ownership intervention enables adaptability (e.g., adding 0xNewToken), while the planned renouncement in Phase 2 or by community vote ensures a decentralized future, enhancing trust and community ownership.